
def parse_options():
  from optparse import OptionParser

  parser = OptionParser()

  parser.add_option("-r", "--interest", dest="r", default="0.10",
                    help="interest rate [default: %default]")
  parser.add_option("-v", "--volatility", dest="sigma", default="0.40",
                    help="volatility [default: %default]")
  
  parser.add_option("-K", "--strike", dest="K", default="50.00",
                    help="strike price [default: %default]")
  parser.add_option("-T", "--maturity", dest="T", default="0.5",
                    help="maturity time [default: %default]")
  parser.add_option("-B", "--bound", dest="B", default="100.00",
                    help="upper bound on stock price [default: %default]")

  parser.add_option("-m", "--time-steps", dest="m", default="100",
                    help="number of time steps [default: %default]")
  parser.add_option("-n", "--space-steps", dest="n", default="200",
                    help="number of steps in stock-price space [default: %default]")
  parser.add_option("--dt", dest="dt", help="time step size")
  parser.add_option("--dx", dest="dx", help="stock-price step size")
  parser.add_option("--method", dest="method", help="finite-difference method")

  parser.add_option("-C", "--call", dest="is_call", action="store_true", 
                    help="value a European-style call option")
  parser.add_option("-P", "--put", dest="is_put", action="store_true", 
                    help="value a European-style put option")
  parser.add_option("--barrier", dest="barrier",
                    help="value a barrier option")

  parser.add_option("--plot", dest="plot", action="store_true", 
                    help="plot results")
  parser.add_option("--save-plot", dest="save_plot", action="store_true",
                    help="save plots to EPS files")

  (options, args) = parser.parse_args()
  return options


